package com.ccp.dev.form.service;

import com.ccp.dev.core.basic.base.BaseService;
import com.ccp.dev.core.basic.util.UUIDUtils;
import com.ccp.dev.core.util.FileUtil;
import com.ccp.dev.form.dao.FormTemplateDao;
import com.ccp.dev.form.model.FormTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.io.File;

/**
 * BPM_FORM_TEMPLATE service类
 *
 * @author zhaowj
 */
@Service
public class FormTemplateService extends BaseService<FormTemplate> {

    @Resource
    FormTemplateDao formTemplateDao;

    /**
     * 返回模版物理的路径。
     *
     * @return String
     */
    public static String getFormTemplatePath() {
        return FileUtil.getClassesPath() + "template" + File.separator + "form" + File.separator;
    }

    /**
     * 通过别名获取表单模板
     *
     * @param alias 模板别名
     * @return 表单模板
     */
    public FormTemplate getByTemplateAlias(String alias) {
        return formTemplateDao.getByTemplateAlias(alias);
    }

    /**
     * 获取所有的系统原始模板
     *
     * @throws Exception
     */
    @Transactional(rollbackFor = Exception.class)
    public void initAllTemplate(){
        formTemplateDao.delSystemTemplate();
        String html = FileUtil.readFile("/templates/form/dataTemplate/template.ftl");
        FormTemplate bpmFormTemplate = new FormTemplate();
        bpmFormTemplate.setTemplateId(UUIDUtils.getUUIDFor32());
        bpmFormTemplate.setHtml(html);
        bpmFormTemplate.setTemplateName("业务数据模板");
        bpmFormTemplate.setAlias("dataTemplateList");
        bpmFormTemplate.setCanEdit(0);
        bpmFormTemplate.setTemplateType("dataTemplate");
        bpmFormTemplate.setTemplateDesc("业务数据模板");
        formTemplateDao.add(bpmFormTemplate);
    }
}
